/**
 * 查询条件格式化工具函数
 */

/**
 * 格式化查询条件为可读的中文描述
 * @param field 字段名
 * @param value 字段值
 * @param meta 元数据（可选）
 * @returns 格式化后的查询条件描述
 */
export const formatQueryCondition = (field: string, value: any, meta?: any): string => {
    switch (field) {
        case 'keyword':
            return `通用搜索："${value}" (在包名、类名、方法名中查找)`;
        case 'noSaCallDurationDays':
            return `累计无调用时长 ≥ ${value}天 (即最后调用时间在 ${meta?.noSaCallCutoffDate} 之前)`;
        case 'noCodeChangeDurationDays':
            return `累计无修改时长 ≥ ${value}天 (即最后修改时间在 ${meta?.noCodeChangeCutoffDate} 之前)`;
        case 'serviceType':
            return `服务类型为 ${value}`;
        case 'isEntry':
            return `${value ? '入口' : '非入口'}方法`;
        case 'hasSaRecord':
            return `${value ? '有SA记录' : '无SA记录'}的方法`;
        case 'hasApmRecord':
            return `${value ? '有APM记录' : '无APM记录'}的方法`;
        case 'deprecationLevel':
            const levelMap: { [key: string]: string } = {
                'EXTREME_RISK': '极高风险',
                'HIGH_RISK': '高风险',
                'MEDIUM_RISK': '中等风险',
                'LOW_RISK': '低风险',
                'MINIMAL_RISK': '极低风险'
            };
            return `废弃风险等级为 ${levelMap[value] || value}`;
        case 'methodName':
            return `方法名包含 "${value}"`;
        case 'className':
            return `类名包含 "${value}"`;
        case 'packageName':
            return `包名包含 "${value}"`;
        case 'serviceName':
            return `服务名包含 "${value}"`;
        case 'orderBy':
            const orderFieldMap: { [key: string]: string } = {
                'noCodeChangeDurationDays': '累计无修改时间',
                'lastInvocationTime': '累计无调用时长',
                'methodName': '方法名',
                'className': '类名',
                'packageName': '包名'
            };
            const orderTypeMap: { [key: string]: string } = {
                'asc': '升序',
                'desc': '降序'
            };
            const fieldName = orderFieldMap[value] || value;
            const orderType = orderTypeMap[meta?.orderByType] || meta?.orderByType || '降序';
            return `按${fieldName}${orderType}排列`;
        default:
            return `${field}: ${value}`;
    }
};
